package thread.basic;

public class ThreadTest {
	public static void main(String[] args) {
	System.out.println("main 시작");//메인 쓰레드
	
	
	Print1to50 p1 = new Print1to50();
	
	
	//p1.run();//그냥 런을 실행시킨다고 스레드가 실행되는게 아니다.
	p1.start();//스레드로 실행
	/*
	 * 이 둘의 차이를 알아야 한다. 
	 * p1.run은 그냥 실행이 순차적으로 위에서 아래로 하나의 흐름으로 실행된것
	 * p1.start는 일단 Sysout이 첫줄에서 시작되고 start가 시작되면 흐름이 두개가 되어 두개가 동시에 움직이는 거다.
	 * 이제는 메인메소드가 끝나도 어디선가 스레드가 실행 중이라면 프로그램이 끝난게 아니다. 
	 * 실행 흐름을 이해하는게 중요하다.
	 * 모든 실행흐름이 끝나냐 프로그램이 끝나는 것이다. 프로세스는 프로그램이 실행되는 과정을 말하는데 프로세스가 종료되기
	 * 위해서는 모든 스레드가 끝나야 프로세스가 비로소 끝난 것이다.
	 * 
	 */
	PrintAtoZ p2 = new PrintAtoZ();
	p2.start();
	
	
	
	System.out.println("main 종료");
	/*
	 * main스레드는 main시작을 찍고 print1to50이라는 스레드를 시작하고 main을 종료한다.
	 * Print 1 To 50 스레드
	 */
	}
}
